package br.com.foxinline.manager.pesquisar;

import br.com.foxinline.modelo.DetalheEntradaSelo;
import br.com.foxinline.modelo.EntradaSelo;
import br.com.foxinline.modelo.Pessoa;
import br.com.foxinline.servico.DetalheEntradaSeloServico;
import br.com.foxinline.servico.EntradaSeloServico;
import br.com.foxinline.servico.PessoaServico;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class ManagerPesquisarEntradaSelo implements Serializable {
    
    @EJB
    EntradaSeloServico entradaSeloServico;
    @EJB
    PessoaServico pessoaServico;
    @EJB
    DetalheEntradaSeloServico detalheEntradaSeloServico;
    
    private EntradaSelo entradaSeloPesquisar;
    private EntradaSelo entradaSeloVisualizar;
    private List<EntradaSelo> entradaSelos;

    private List<DetalheEntradaSelo> detalhesEntradaSeloVisualizar;
    
    String visualizarId;
    
    @PostConstruct
    public void init() {
        instanciar();
        delegar();
    }
    
    private void instanciar() {
        this.entradaSeloPesquisar = new EntradaSelo();
        this.entradaSelos = new ArrayList<EntradaSelo>();
    }
    
    private void delegar() {
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.visualizarId = parametros.get("entradaSeloId");

        if (visualizarId != null) {
            this.entradaSeloVisualizar = entradaSeloServico.pesquisar(Long.parseLong(visualizarId));
            this.detalhesEntradaSeloVisualizar = detalheEntradaSeloServico.pesquisar(this.entradaSeloVisualizar);
        }
    }
    
    public List<Pessoa> autocompletarFornecedor(String query) {
        return pessoaServico.autocompletar(query);
    }
    
    public void pesquisar() {
        this.entradaSelos = entradaSeloServico.pesquisar(this.entradaSeloPesquisar);
    }
    
    public void limpar() {
        init();
    }

    public EntradaSelo getEntradaSeloPesquisar() {
        return entradaSeloPesquisar;
    }

    public void setEntradaSeloPesquisar(EntradaSelo entradaSeloPesquisar) {
        this.entradaSeloPesquisar = entradaSeloPesquisar;
    }

    public List<EntradaSelo> getEntradaSelos() {
        return entradaSelos;
    }

    public void setEntradaSelos(List<EntradaSelo> entradaSelos) {
        this.entradaSelos = entradaSelos;
    }

    public EntradaSelo getEntradaSeloVisualizar() {
        return entradaSeloVisualizar;
    }

    public void setEntradaSeloVisualizar(EntradaSelo entradaSeloVisualizar) {
        this.entradaSeloVisualizar = entradaSeloVisualizar;
    }

    public List<DetalheEntradaSelo> getDetalhesEntradaSeloVisualizar() {
        return detalhesEntradaSeloVisualizar;
    }

    public void setDetalhesEntradaSeloVisualizar(List<DetalheEntradaSelo> detalhesEntradaSeloVisualizar) {
        this.detalhesEntradaSeloVisualizar = detalhesEntradaSeloVisualizar;
    }  
    
}
